// pages/login/staffLogin/staffLogin.js
Page({
  data: {
    account: '',        // 账号
    password: '',       // 密码
    showPassword: false, // 是否显示密码
    selectedRole: ''    // 选中的角色（collector/firefighter/admin）
  },

  // 返回上一页
  navigateBack() {
    wx.navigateBack({ delta: 1 })
  },

  // 账号输入
  handleAccountInput(e) {
    this.setData({ account: e.detail.value })
  },

  // 密码输入
  handlePasswordInput(e) {
    this.setData({ password: e.detail.value })
  },

  // 切换密码可见性
  togglePasswordVisible() {
    this.setData({ showPassword: !this.data.showPassword })
  },

  // 选择角色
  selectRole(e) {
    const role = e.currentTarget.dataset.role
    this.setData({ selectedRole: role })
  },

  // 提交登录
  submitLogin() {
    const { account, password, selectedRole } = this.data
    // 1. 表单验证
    if (!account) {
      return wx.showToast({ title: '请输入账号', icon: 'none' })
    }
    if (!password) {
      return wx.showToast({ title: '请输入密码', icon: 'none' })
    }
    if (!selectedRole) {
      return wx.showToast({ title: '请选择角色', icon: 'none' })
    }

    // 2. 显示加载中
    wx.showLoading({ title: '登录中...' })

    // 3. 调用后端登录接口
    wx.request({
      url: 'http://localhost:8081/api/staff/login', // 后端接口地址
      method: 'POST',
      data: {
        account,
        password,
        role: selectedRole // 角色英文标识，需与后端一致
      },
      success: (res) => {
        wx.hideLoading()
        if (res.data.code === 200) {
          // 登录成功：存储token和用户信息
          wx.setStorageSync('staffToken', res.data.data.token)
          wx.setStorageSync('staffInfo', res.data.data.userInfo)
          // 根据角色跳转不同页面
          const rolePageMap = {
            collector: '/pages/staff/collector/index',
            firefighter: '/pages/staff/firefighter/index',
            admin: '/pages/staff/admin/index'
          }
          wx.redirectTo({ url: rolePageMap[selectedRole] })
        } else {
          wx.showToast({ title: res.data.msg || '登录失败', icon: 'none' })
        }
      },
      fail: () => {
        wx.hideLoading()
        wx.showToast({ title: '网络错误，请重试', icon: 'none' })
      }
    })
  }
})